/* eslint-disable */
/**如果使用自定义的对象*/
/** 系统内置的用户 */
const User = {
  className: 'com.oa.system.User',
  type: 'system', // 区分系统对象（system）和自定义对象（custom），有时候需要内置一些对象不可让用户编辑操作，比如用户对象
  fields: [
    { name: 'id', label: '用户id', dataType: 'java.lang.String', required: true, minLength: 1, maxLength: 100 },
    { name: 'name', label: '用户名称', dataType: 'java.lang.String', required: true, minLength: 1, maxLength: 100 },
  ]
}
/** 系统内置的数据字典 */
const Dictionary = {
  className: 'com.oa.system.Dictionary',
  type: 'system', // 区分系统对象（system）和自定义对象（custom），有时候需要内置一些对象不可让用户编辑操作，比如用户对象
  fields: [
    { name: 'code', label: '字典编码', dataType: 'java.lang.String', required: true, minLength: 1, maxLength: 100 },
    { name: 'text', label: '字典文本', dataType: 'java.lang.String', required: true, minLength: 1, maxLength: 100 },
  ]
}

/** 首先通过自定义对象来定义报销明细 */
const ReimbursementItem = {
  className: 'com.oa.reimbursement.ReimbursementItem',
  type: 'custom', // 区分系统对象（system）和自定义对象（custom），有时候需要内置一些对象不可让用户编辑操作，比如用户对象
  fields: [
    { name: 'itemName', label: '明细描述', dataType: 'java.lang.String', required: true, minLength: 1, maxLength: 100 },
    { name: 'amount', label: '明细金额', dataType: 'java.math.BigDecimal', required: true, min: 0, max: 999999999 },
    { name: 'date', label: '明细日期', dataType: 'java.util.Date', required: true },
  ]
}

/** 然后通过自定义对象来定义报销单 */
const Reimbursement = {
  className: 'com.oa.reimbursement.Reimbursement',
  type: 'custom',
  fileds: [
    { name: 'user', label: '报销人', dataType: 'java.util.Map', className: 'com.oa.system.User', required: true },
    { name: 'type', label: '报销类型', dataType: 'java.util.Map', className: 'com.oa.system.Dictionary', required: true },
    { name: 'amount', label: '报销总金额', dataType: 'java.math.BigDecimal', required: true, min: 0, max: 999999999 },
    { name: 'items', label: '报销明细', dataType: 'java.util.List', className: 'com.oa.reimbursement.ReimbursementItem', required: true },
  ]
}
